Microcontrollers are widely used in devices that are expected to operate without the need for frequent updates to their basic behavior. Accordingly, microcontrollers have found widespread use in automotive control systems, toys, medical implants, consumer appliances, and other systems that need to operate on a long-term basis under a reliable control system.
In various applications, microcontrollers are designed with the ability to accept modifications to their internal firmware. These modifications may be needed, for example, to provide occasional upgrades or updates that address errors (e.g., correcting a security vulnerability or other bug) or add new features or compatibilities with evolving communications protocols. Thus updatability is an essential feature for providing support through the expected lifetime of many products.